1. Field of the Invention
The present invention relates to a pre-decoder applied to a turbo decoder, and more particularly to a pre-decoder for recovering punctured portions of turbo codes transferred with punctured parity bits and providing the recovered turbo codes to the turbo decoder.
2. Description of the Related Art
In general, in wireless digital communications, methods are employed for adding error-correction codes at a transmitter and correcting errors at a decoder in order to correct errors on channels. The Turbo code is used as one of the error-correctable coding methods. The Turbo code has been chosen in the United States-bound CDMA2000 and the Europe-bound W-CDMA for channels which require high data rates. It is known that the Turbo code nearly approaches the Shannon Limit which is the theoretical limit value by performing iterative decoding even at low signal-reception power. There are the Soft-Output Viterbi Algorithm (SOVA) method and the Maximum A Posteriori (MAP) method for the decoding method of the Turbo code, and it is known that the MAP method has an about 0.38 dB higher coding gain in the Additive White Gausian Noise (AWGN) environment having a better channel environment, and an about 3 dB higher coding gain in the Rayleigh Fading environment having a worse channel environment, than the SOVA method has. Further, even encoding is carried out at the code rate R=½ with puncturing in the state of the code rate R=⅓.
FIG. 1 is a view for showing a turbo encoder for generating turbo codes, which has the code rate R=⅓. The turbo encoder is constituted with two parallel-concatenated recursive systematic convolutional (RSC) blocks RSC1 and RSC2 and an interleaver. An information bit sequence dk is input to the first RSC block RSC1, and the RSC block RSC1 generates a first parity bit stream Y1k. At the same time, the information bit sequence dk is input to the interleaver and then stored by frame unit. The information bit sequence dk input to the interleaver is interleaved by the interleaver, and the interleaved information bit sequence dk′ is input to the second RSC block RSC2. The RSC block RSC2 generates a second parity bit stream Y2k.
Xk, information bit stream dk, which is input as it is, is attached to the first and second bit streams Y1k and Y2k, so a turbo code of which symbol sequence X1, Y11, Y21, X2, Y22, X3, Y13, Y23, . . . is generated and, in this situation, the code rate becomes R=⅓. Here, generally, the parity bit Yk get punctured to enhance the transmission efficiency, and, like the general cases, if puncturing is made to be R=½ according to a method of alternately puncturing respective streams of the parity bits, the symbol sequence becomes like X1, Y11, X2, Y22, . . . , XN−1, Y1N−1, XN, Y2N (here, N is an even number). The symbol sequence is modulated with the binary phase shift keying (BPSK) to be transferred to channels. Namely, the symbol sequence of 1 and 0 are changed to the transfer symbols of +1 and −1 to be transmitted to channels.
Various noises are added to the transfer symbols received through the channels, which can be expressed in mathematical formulas as below:xk=(2Xk−1)+Pk yk=(2Yk−1)+Qk
Here, Xk and Xk are transferred data bit stream and received data symbol stream respectively, and Yk and yk are transferred parity bit streams and received parity symbol streams respectively, and Pk and Qk are noises independent from each other.
A general block diagram of the Turbo decoder using the MAP method, as shown in FIG. 2, can be shown as a form of two serial-concatenated decoders Dec1 and Dec2. The principle of such Turbo decoder is described as follows.
A received symbol sequence of a frame is RN1 is expressed by,RN1=(R1, . . . , Rk, . . . , RN) 
Here, RN1=(Xk, yk), which are received symbols at time k.
A likelihood ratio λk related to the RN1 to be decoded is defined by,λk=P(dk=1|RN1)/(P(dk=0|RN1)
Here, i=0,1, and P(dk=i|RN1) is an A Posteriori Probability (APP) of the information bit dk. The MAP method is a method for selecting the information bit dk in order for the APP to be maximized.
The first decoder Dec1 generates extrinsic information of the information bit dk with an A Priori Ratio La(dk) of the information bit dk, a value L(xk) for a received information symbol, and a value L(y1k) for a received symbol of a parity by the first encoder RSC1. The La(dk) of the first decoder Dec1 becomes 0 at the first iteration, which is because log 1=0 when calculated in the log domain, since the value of dk is constituted with 1 and 0 and the Priori Probability of 1 and the Priori Probability of 0 can be equally assumed as ½, and the value(½)/(½) equals 1. The L(xk) and L(yk) become values obtained from multiplying the values of xk and y1k by a channel reliability Lc. With such input values, an output L1(dk) of the first decoder Dec1 consists of a combination of terms shown in the following formula:
 L1(dk)=La(dk)+L(xk)+Le1(dk),
wherein the terms of La(dk) and L(xk) are the terms received as inputs, and, if these terms are eliminated from an output, an extrinsic information produced by the first decoder Dec1 becomes Le1(dk). These terms are related to each dk and utilized as the A Priori Ratio of information bits in the second decoder Dec2.
Viewing an input of the second decoder Dec2 during the first iteration, the A Priori Ratio La(dk) of the information bit (dk) becomes the Le1(dk) obtained from the first decoder Dec1, and the value L(xk) for a received information symbol and the value L(y2k) for a received symbol of a parity by the second RSC block RSC2 are input to the second decoder Dec2. Here, since the received parity symbol is a value obtained in an interleaved state at the transmitter, the information symbol value L(xk) and the extrinsic information Le1(dk) of the first decoder Dec1 used for an A Priori Ratio value are inputted after interleaving. An output L2(dk) of the second decoder Dec2 is formed with a combination of terms as shown in a following formula. Namely,L2(dk)=La(dk)(=Le1(dk))+L(xk′)+Le2(dk),
wherein Le2(dk) is an extrinsic information which the second decoder Dec2 produces and is utilized for the A Priori Probability Ratio value of the first decoder Dec1 in the second iteration.
A parity symbol and information transmitted from the transmitter are modulated to +1 and −1 and then transferred. If no noise exists on a channel,+1 is received as +1 and −1 as −1, although such actually does not happen because of the presence of noise on the channel. In case of the existence of a little noise, receptions are made off +1 by the noise influence such as +0.9, +1.1, +0.8, +1.2, and so on, and the same applies to −1. Further, values obtained from multiplying such received symbol values by the channel reliability Lc are input to the Turbo decoder. In case that a channel is the Additive White Gausian Noise (AWGN) channel, Lc becomes 2/σ2 and is multiplied by the received symbols. As for the first decoder Dec1, inputted L(xk) and L(yk) are produced by multiplying respective received symbols xk and yk by Lc.
An extrinsic information of an information bit of the k-th time in the first decoder Dec1 is as follows:Le1(dk)=Log(Σαk−1(s)γk(dk=1)βk(s′)/Σαk −1(s′)γk(dk=)βk(s′)),                wherein αk−1(s) is a feedforward state metric at time k−1 and in the state s, βk(s′)is a feedback state metric at time k in the state s′, γk(dk=1) is a branch metric at time k of which estimation value of information bits is 1(dk=1), and γk(dk=0) is a branch metric at time k of which estimation value of the information bits is 0(dk=0). αk−1(s) is calculated by using the received symbols L(xk) and L(y1k) at α0(s) at time t=0, such as α0(s), α2(s), . . . , and βk(s′) is calculated by using the received symbols L(xk) and L(y1k) at βn(s′) at time t=N, such as βN−1(s′), βN−2(s′), . . . That is, it is meant that the k-th received symbols are used for the update of αk−1(s) and βk(s′). After all, the turbo decoding of using the iterative MAP method can be referred to as a job of improving the extrinsic information of all the symbols.        
As stated above, turbo codes encoded at the transmitter are frequently punctured and then transferred in consideration of the band efficiency in the digital communication systems, such as puncturing a code having code rate R=⅓ to R=½, and so on. That is, symbols encoded at a transmitter like (X1, Y11, X2, Y22, X3, Y13, X4, Y24, . . . , XN−1, Y1N−1, XN, Y2N) are received at a receiver like (x1, y11, x2, y22, x3, y13, x4, y24, . . . , xN−1, y1N−1, xN, y2N). These received symbols are formatted to Rk to be inputted to a serial-concatenated decoder, and the received symbols inputted to the first decoder Dec1 become R1=(x1, y11), R2=(x2, 0), R3=(x3, y13), R4=(x4, 0), . . . , Rn=(Xn, 0), so an extrinsic information for each information bit is obtained, and the received symbols inputted to the second decoder Dec2 (under an assumption that the interleaving is ignored) become R1=(x1, 0), R2=(x2, y22), R3=(x3, 0), R4=(x4, y24), . . . , Rn=(Xn, y2n), so the extrinsic information for each information bit get improved. Here, punctured parity symbols are substituted by 0 since no information exists at the receiver, which hinders the improvement of the extrinsic information and requires more iterations to reach a desired performance (a bit error ratio(BER) at a given Eb/N0).
That is, in case of performing the decoding by using the conventional turbo decoder as stated above, since the punctured portions are not known to the receiver, the receiver simply substitutes 0 for them and then performs the turbo encoding. Accordingly, there exists a problem in that the turbo decoder should execute many iterations to obtain a desired decoding performance.